// Abstract: to be implemented